////////////////////////////////////////////////////////////////////////////////

#ifndef _BATTLEFIELD_H
#define _BATTLEFIELD_H

////////////////////////////////////////////////////////////////////////////////

#include <list>
#include <map>

////////////////////////////////////////////////////////////////////////////////

#include "player.h"
#include "bullet.h"

////////////////////////////////////////////////////////////////////////////////


/** Battle arena
*
*  @author   Roman Pasechnik
*  @since    Jun 09th, 2009
*  @updated  Jun 09th, 2009
*/
class Battlefield : public Object
{
////////////////////////////////////////////////////////////////////////////////

public:

////////////////////////////////////////////////////////////////////////////////


    /** Constructor */
    Battlefield();


    /** Destructor */
    virtual ~Battlefield();


////////////////////////////////////////////////////////////////////////////////


    /** Gets player */
    Player& GetPlayer();
    const Player& GetPlayer() const;


    /** Utility type: array of bullets */
    typedef std::list<Bullet> Bullets;


    /** Gets flying bullets */
    const Bullets& GetBullets() const;


////////////////////////////////////////////////////////////////////////////////

private:

////////////////////////////////////////////////////////////////////////////////


    /** Player */
    Player m_Player;


    /** Flying bullets */
    Bullets m_Bullets;


////////////////////////////////////////////////////////////////////////////////
};


////////////////////////////////////////////////////////////////////////////////

#endif

////////////////////////////////////////////////////////////////////////////////
